module ApplicationHelper


  @@row = 0

  # Geeft om en om 'odd' en 'even' terug.
  def row_class
    return (@@row+=1)%2 == 0 ? 'odd' : 'even'
  end


  # Plaatje dat true/false presenteert.
  def boolean_image(b)
    return '<img src="' + image_path(( if b then 'yes' else 'no' end ) + '.gif' ) + '"/>'
  end

  # Nederlandse datum en tijd
  def format_datetime(datetime)
    format_date(datetime) + ' ' + datetime.hour.to_s + ':' + datetime.min.to_s
  end

  # Nederlandse datum
  def format_date(date)
    date.day.to_s + '-' + date.month.to_s + '-' + date.year.to_s
  end

  
  # De normale truncate helper kort een text in tot x tekens. Deze
  # functie doet hetzelfde maar probeert na een spatie te stoppen.
  # I.e: string 'Hello good morning everybody!' en lengte 25.
  # - truncate:      'Hello good morning everyb...'
  # - truncate_neat: 'Hello good morning...'
  def truncate_neat(text, *args)
    options = args.extract_options!

    options[:length] ||= 50
    options[:omission] ||= '...'

    text = text.to_s

    if text.length <= options[:length]
      return text
    else
      k = options[:length] - options[:omission].mb_chars.length
      i = text[0, k].reverse.index(/[ ]/)


      if i != nil and i < 20 and i < k
        return text[0, k-i-1] + options[:omission]
      else
        return text[0, k] + options[:omission]
      end
    end
  end
  
end
